package com.erp.erp_entitys.BillClearInfo;

import com.erp.annotation.PropertyMsg;
import com.erp.erp_entitys.business.entity.CarryDetailProductEntity;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 清关产品明细表(BillExchangeProductInfo)实体类
 *
 * @author cj
 * @since 2021-01-15 21:07:05
 */
public class BillClearProductInfo implements Serializable {
    private static final long serialVersionUID = -46978483197752747L;
    /**
     * 清关产品表ID
     */
    private Integer clearProductId;
    /**
     * 清关主表ID
     */
    private Integer clearId;
    /**
     * 出运产品ID
     */
    private Integer carryProductsId;
    /**
     * 规格编码
     */
    private String specCode;
    /**
     * 规格说明
     */
    @PropertyMsg("规格说明")
    private String specNo;
    /**
     * 产品编码
     */
    @PropertyMsg("产品编码")
    private String goodsCode;
    /**
     * 销售合同号(对应外销主表中的合同编号)
     */
    private String saleContractNo;
    /**
     * 已拆分金额(资金管理-收款专用)
     */
    private BigDecimal amountSplit;
    /**
     * 产品中文名称
     */
    private String goodsCname;
    /**
     * 产品英文名称
     */
    private String goodsEname;
    /**
     * 产品中文描述
     */
    private String goodsCdesc;
    /**
     * 产品英文描述
     */
    private String goodsEdesc;
    /**
     * 产品数量
     */
    private BigDecimal goodsNum;
    /**
     * 剩余数量
     */
    @PropertyMsg("清关数量")
    private BigDecimal lastAmount;
    /**
     * 单位
     */
    private String goodsUnit;
    /**
     * 规格说明
     */
    private String goodsSpec;
    /**
     * 颜色
     */
    @PropertyMsg("颜色")
    private String color;
    /**
     * 箱数(件数)
     */
    private BigDecimal piecesNum;
    /**
     * 每箱数量（每件数量）
     */
    @PropertyMsg("每箱数量")
    private BigDecimal perpiecesNum;
    /**
     * 毛重
     */
    @PropertyMsg("毛重")
    private BigDecimal goodsGross;
    /**
     * 毛重小计
     */
    private BigDecimal totalGross;
    /**
     * 净重
     */
    @PropertyMsg("净重")
    private BigDecimal netWeight;
    /**
     * 净重小计
     */
    private BigDecimal totalNet;
    /**
     * 体积
     */
    @PropertyMsg("体积")
    private BigDecimal bulk;
    /**
     * 体积小计
     */
    private BigDecimal totalBulk;
    /**
     * 外币单价(单价）
     */
    @PropertyMsg("外币单价")
    private BigDecimal funitprice;
    /**
     * 外币金额小计（金额小计）
     */
    private BigDecimal ftotalprice;
    /**
     * 托盘入数
     */
    @PropertyMsg("托盘入数")
    private BigDecimal trayNum;
    /**
     * 总托盘
     */
    private BigDecimal totalTray;
    /**
     * 采购单号
     */
    @PropertyMsg("采购单号")
    private String stockNo;
    /**
     * 供应商编码
     */
    private String supplyerId;
    /**
     * 供应商名称
     */
    @PropertyMsg("供应商名称")
    private String supplyerName;
    /**
     * 配件成本
     */
    @PropertyMsg("配件成本")
    private BigDecimal accessoriesCost;
    /**
     * 成品成本
     */
    @PropertyMsg("成品成本")
    private BigDecimal finishedProductCost;
    /**
     * 产品类型(1:成品 2:配件 3:料件)
     */
    private Integer producttype;
    /**
     * 海关编码
     */
    @PropertyMsg("海关编码")
    private String hsCode;
    /**
     * 批次
     */
    @PropertyMsg("批次")
    private String lot;
    /**
     * 关税金额
     */
    @PropertyMsg("关税金额")
    private BigDecimal tariffMoney;
    /**
     * 关税税率
     */
    private BigDecimal tariffRate;
    /**
     * 成本单价（默认导入出运明细产品采购单价，但是可能会调整，所以保存）
     */
    @PropertyMsg("成本单价")
    private BigDecimal costUnitPrice;
    /**
     * 成本小计（报关数量*成本单价）
     */
    private BigDecimal costSubtotal;
    /**
     * 清关单价
     */
    private BigDecimal clearOnePlace;
    /**
     * 清关总价
     */
    private BigDecimal clearAllPlace;
    /**
     * 备用1
     */
    private String clear_1;
    /**
     * 备用2
     */
    private String clear_2;
    /**
     * 备用3
     */
    private String clear_3;

    public BillClearProductInfo(CarryDetailProductEntity pro){
        this.costSubtotal=pro.getCostSubtotal();
        this.costUnitPrice=pro.getCostUnitPrice();
        this.clearId=pro.getCarryDetailId();//临时存放出运明细表id
        this.specCode = pro.getSpecNo();
        this.carryProductsId = pro.getId();
        this.specCode = pro.getSpecNo();
        this.specNo = pro.getProductSpecExplanation();
        this.goodsCode = pro.getProductCode();
        this.goodsCname = pro.getProductCname();
        this.goodsEname = pro.getProductEname();
        this.goodsCdesc = pro.getProductCdesc();
        this.goodsEdesc = pro.getProductEdesc();
        this.goodsNum = pro.getProductNum();
        this.goodsUnit = pro.getProductUnitName();
        this.goodsSpec = pro.getProductSpecExplanation();
        this.color = pro.getColor();
        this.piecesNum = pro.getBoxAmount();
        this.perpiecesNum = pro.getEveryBoxAmount();
        this.goodsGross = pro.getGrossWeight();
        this.totalGross = pro.getGrossWeightSubtotal();
        this.bulk = pro.getBulk();
        this.totalBulk = pro.getBulkSubtotal();
        this.funitprice = pro.getFcUnitPrice();
        this.ftotalprice = pro.getMoneySubtotal();
        this.totalTray = pro.getTotalTray();
        this.stockNo = pro.getPurchaseNo();
        this.saleContractNo = pro.getSaleContractNo();
        this.supplyerId = pro.getSupplierId();
        this.supplyerName = pro.getSupplierName();
        this.netWeight=pro.getNetWeight();
        this.totalNet=pro.getNetWeightSubtotal();
        this.trayNum=pro.getTrayNumber();
        this.finishedProductCost=pro.getFinishedProductCost();
        this.producttype = 1;
        this.accessoriesCost=pro.getAccessoriesCost();
    }

    public BillClearProductInfo() {
    }

    public BigDecimal getCostUnitPrice() {
        return costUnitPrice;
    }

    public Integer getClearProductId() {
        return clearProductId;
    }

    public void setClearProductId(Integer clearProductId) {
        this.clearProductId = clearProductId;
    }

    public Integer getClearId() {
        return clearId;
    }

    public void setClearId(Integer clearId) {
        this.clearId = clearId;
    }

    public BigDecimal getClearOnePlace() {
        return clearOnePlace;
    }

    public void setClearOnePlace(BigDecimal clearOnePlace) {
        this.clearOnePlace = clearOnePlace;
    }

    public BigDecimal getClearAllPlace() {
        return clearAllPlace;
    }

    public void setClearAllPlace(BigDecimal clearAllPlace) {
        this.clearAllPlace = clearAllPlace;
    }

    public String getClear_1() {
        return clear_1;
    }

    public void setClear_1(String clear_1) {
        this.clear_1 = clear_1;
    }

    public String getClear_2() {
        return clear_2;
    }

    public void setClear_2(String clear_2) {
        this.clear_2 = clear_2;
    }

    public String getClear_3() {
        return clear_3;
    }

    public void setClear_3(String clear_3) {
        this.clear_3 = clear_3;
    }

    public void setCostUnitPrice(BigDecimal costUnitPrice) {
        this.costUnitPrice = costUnitPrice;
    }

    public BigDecimal getCostSubtotal() {
        return costSubtotal;
    }

    public void setCostSubtotal(BigDecimal costSubtotal) {
        this.costSubtotal = costSubtotal;
    }

    public Integer getBillProductId() {
        return clearProductId;
    }

    public void setBillProductId(Integer clearProductId) {
        this.clearProductId = clearProductId;
    }

    public Integer getBillId() {
        return clearId;
    }

    public void setBillId(Integer clearId) {
        this.clearId = clearId;
    }

    public String getSpecCode() {
        return specCode;
    }

    public void setSpecCode(String specCode) {
        this.specCode = specCode;
    }

    public String getSpecNo() {
        return specNo;
    }

    public void setSpecNo(String specNo) {
        this.specNo = specNo;
    }

    public String getGoodsCode() {
        return goodsCode;
    }

    public void setGoodsCode(String goodsCode) {
        this.goodsCode = goodsCode;
    }

    public String getSaleContractNo() {
        return saleContractNo;
    }

    public void setSaleContractNo(String saleContractNo) {
        this.saleContractNo = saleContractNo;
    }

    public BigDecimal getAmountSplit() {
        return amountSplit;
    }

    public void setAmountSplit(BigDecimal amountSplit) {
        this.amountSplit = amountSplit;
    }

    public String getGoodsCname() {
        return goodsCname;
    }

    public void setGoodsCname(String goodsCname) {
        this.goodsCname = goodsCname;
    }

    public String getGoodsEname() {
        return goodsEname;
    }

    public void setGoodsEname(String goodsEname) {
        this.goodsEname = goodsEname;
    }

    public String getGoodsCdesc() {
        return goodsCdesc;
    }

    public void setGoodsCdesc(String goodsCdesc) {
        this.goodsCdesc = goodsCdesc;
    }

    public String getGoodsEdesc() {
        return goodsEdesc;
    }

    public void setGoodsEdesc(String goodsEdesc) {
        this.goodsEdesc = goodsEdesc;
    }

    public BigDecimal getGoodsNum() {
        return goodsNum;
    }

    public void setGoodsNum(BigDecimal goodsNum) {
        this.goodsNum = goodsNum;
    }

    public BigDecimal getLastAmount() {
        return lastAmount;
    }

    public void setLastAmount(BigDecimal lastAmount) {
        this.lastAmount = lastAmount;
    }

    public String getGoodsUnit() {
        return goodsUnit;
    }

    public void setGoodsUnit(String goodsUnit) {
        this.goodsUnit = goodsUnit;
    }

    public String getGoodsSpec() {
        return goodsSpec;
    }

    public void setGoodsSpec(String goodsSpec) {
        this.goodsSpec = goodsSpec;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public BigDecimal getPiecesNum() {
        return piecesNum;
    }

    public void setPiecesNum(BigDecimal piecesNum) {
        this.piecesNum = piecesNum;
    }

    public BigDecimal getPerpiecesNum() {
        return perpiecesNum;
    }

    public void setPerpiecesNum(BigDecimal perpiecesNum) {
        this.perpiecesNum = perpiecesNum;
    }

    public BigDecimal getGoodsGross() {
        return goodsGross;
    }

    public void setGoodsGross(BigDecimal goodsGross) {
        this.goodsGross = goodsGross;
    }

    public BigDecimal getTotalGross() {
        return totalGross;
    }

    public void setTotalGross(BigDecimal totalGross) {
        this.totalGross = totalGross;
    }

    public BigDecimal getNetWeight() {
        return netWeight;
    }

    public void setNetWeight(BigDecimal netWeight) {
        this.netWeight = netWeight;
    }

    public BigDecimal getTotalNet() {
        return totalNet;
    }

    public void setTotalNet(BigDecimal totalNet) {
        this.totalNet = totalNet;
    }

    public BigDecimal getBulk() {
        return bulk;
    }

    public void setBulk(BigDecimal bulk) {
        this.bulk = bulk;
    }

    public BigDecimal getTotalBulk() {
        return totalBulk;
    }

    public void setTotalBulk(BigDecimal totalBulk) {
        this.totalBulk = totalBulk;
    }

    public BigDecimal getFunitprice() {
        return funitprice;
    }

    public void setFunitprice(BigDecimal funitprice) {
        this.funitprice = funitprice;
    }

    public BigDecimal getFtotalprice() {
        return ftotalprice;
    }

    public void setFtotalprice(BigDecimal ftotalprice) {
        this.ftotalprice = ftotalprice;
    }

    public Integer getCarryProductsId() {
        return carryProductsId;
    }

    public void setCarryProductsId(Integer carryProductsId) {
        this.carryProductsId = carryProductsId;
    }

    public BigDecimal getTrayNum() {
        return trayNum;
    }

    public void setTrayNum(BigDecimal trayNum) {
        this.trayNum = trayNum;
    }

    public BigDecimal getTotalTray() {
        return totalTray;
    }

    public void setTotalTray(BigDecimal totalTray) {
        this.totalTray = totalTray;
    }

    public String getStockNo() {
        return stockNo;
    }

    public void setStockNo(String stockNo) {
        this.stockNo = stockNo;
    }

    public String getSupplyerId() {
        return supplyerId;
    }

    public void setSupplyerId(String supplyerId) {
        this.supplyerId = supplyerId;
    }

    public String getSupplyerName() {
        return supplyerName;
    }

    public void setSupplyerName(String supplyerName) {
        this.supplyerName = supplyerName;
    }

    public BigDecimal getAccessoriesCost() {
        return accessoriesCost;
    }

    public void setAccessoriesCost(BigDecimal accessoriesCost) {
        this.accessoriesCost = accessoriesCost;
    }

    public BigDecimal getFinishedProductCost() {
        return finishedProductCost;
    }

    public void setFinishedProductCost(BigDecimal finishedProductCost) {
        this.finishedProductCost = finishedProductCost;
    }

    public Integer getProducttype() {
        return producttype;
    }

    public void setProducttype(Integer producttype) {
        this.producttype = producttype;
    }

    public String getHsCode() {
        return hsCode;
    }

    public void setHsCode(String hsCode) {
        this.hsCode = hsCode;
    }

    public String getLot() {
        return lot;
    }

    public void setLot(String lot) {
        this.lot = lot;
    }

    public BigDecimal getTariffMoney() {
        return tariffMoney;
    }

    public void setTariffMoney(BigDecimal tariffMoney) {
        this.tariffMoney = tariffMoney;
    }

    public BigDecimal getTariffRate() {
        return tariffRate;
    }

    public void setTariffRate(BigDecimal tariffRate) {
        this.tariffRate = tariffRate;
    }


}